package br.com.intelsys.basics.utils;

import java.io.IOException;
import java.util.Properties;

import org.apache.log4j.Logger;

/**
 * Permite acesso aos recursos estaticos da API, normalmente cnfiguracoes.
 * 
 * @author Patrick Givisiez
 * 
 */
public class PropStaticData {

	/**
	 * Caminho padrao do arquivo de propriedades
	 */
	private String propertiesFile;;

	private Properties prop;

	private static Logger log = Logger.getLogger(PropStaticData.class);

	public PropStaticData(String propertiesFile) {
		this.propertiesFile = propertiesFile;
	}

	/**
	 * Define o arquivo com as propriedades de acesso das redes sociais
	 * 
	 * @param key
	 * @return Conteudo da chave ou null caso ela nao tenha sido encontrada
	 */
	public String getProp(String key) {
		String ret = null;
		if (prop == null) {
			if (log.isDebugEnabled()) {
				log.debug("Carregando o arquivo de propriedades " + propertiesFile);
			}
			prop = System.getProperties();
			try {
				prop.load(PropStaticData.class.getResourceAsStream(propertiesFile));
			} catch (NullPointerException e) {
				if (log.isDebugEnabled()) {
					log.debug("O arquivo de propriedades " + propertiesFile + " nao foi encontrado no classpah.");
				}
			} catch (IOException e) {
				if (log.isDebugEnabled()) {
					log.debug("Nao foi encontrada a chave " + key + " no arquivo de propriedades " + propertiesFile);
				}
				return null;
			}
		}
		ret = prop.getProperty(key);
		if (log.isDebugEnabled()) {
			log.debug("Buscando o conteudo da chave " + key + " nos Properties: " + ret);
		}
		return ret;
	}

}
